package com.suprema.biomini;

import com.technofovea.hllib.JnaEnum;

/**
 * 指紋樣本狀態
 * @author Kent Yeh
 */
public enum EnrollType implements JnaEnum<EnrollType> {

    /**
     * 比對失敗
     */
    SF_VERIFYFAIL(0),
    /**
     * 成功
     */
    SF_SUCCESS(1),
    /**
     * 掃瞄影像不清楚
     */
    SF_NOTGOODIMAGE(2),
    /**
     * 未偵測到指紋中心
     */
    SF_CORETOCENTER(4),
    /**
     * 未偵測到指紋左側
     */
    SF_CORETOLEFT(8),
    /**
     * 未偵測到指紋右側
     */
    SF_CORETORIGHT(16),
    /**
     * 未偵測到指紋上側
     */
    SF_CORETOTOP(32),
    /**
     * 未偵測到指紋底部
     */
    SF_CORETOBOTTOM(64),
    /**
     * 辨識超出等待時間
     */
    SF_MATCHTIMEOUT(128),
    /**
     * 放棄辨識
     */
    SF_MATCHABORT(129);
    private int value;

    private EnrollType(int value) {
        this.value = value;
    }

    public EnrollType getForValue(int i) {
        for (EnrollType o : this.values()) {
            if (o.value == i) {
                return o;
            }
        }
        return null;
    }

    public int getIntValue() {
        return value;
    }

    @Override
    public String toString() {
        switch (getIntValue()) {
            case 1:
                return "成功";
            case 2:
                return "掃瞄影像不清楚";
            case 4:
                return "未偵測到指紋中心";
            case 8:
                return "未偵測到指紋左側";
            case 16:
                return "未偵測到指紋右側";
            case 32:
                return "未偵測到指紋上側";
            case 64:
                return "未偵測到指紋底部";
            case 128:
                return "辨識超出等待時間";
            case 29:
                return "放棄辨識";
            default:
                return "比對失敗";
        }
    }
}
